package org.wdcode.back.helper;

import java.util.List;
import java.util.Map;

import org.wdcode.back.cache.RoleOperateCache;
import org.wdcode.back.po.RoleOperate;
import org.wdcode.base.helper.BaseEntityCacheHelper;
import org.wdcode.common.tools.Lists;

/**
 * 角色与操作关系相关业务助手类 可操作缓存
 * @author WD
 * @since JDK6
 * @version 1.0 2009-11-23
 */
public final class RoleOperateHelper extends BaseEntityCacheHelper<RoleOperateCache, RoleOperate> {
	// 角色与操作关系助手
	private static RoleOperateHelper	helper;

	/**
	 * 根据角色获得操作ID列表
	 * @return 操作ID列表
	 */
	public List<RoleOperate> getByRole(int role) {
		// 声明列表保存操作ID
		List<RoleOperate> list = Lists.getList();
		// 获得角色与操作关系缓存
		Map<Integer, RoleOperate> map = getCaches();
		// 声明角色与操作关系 保存临时变量
		RoleOperate ro = null;
		// 循环
		for (Map.Entry<Integer, RoleOperate> entry : map.entrySet()) {
			// 获得角色与操作关系
			ro = entry.getValue();
			// 判断是否是这个角色的
			if (role == ro.getRoleId()) {
				// 是 添加到列表
				list.add(ro);
			}
		}
		// 返回列表
		return list;
	}

	/**
	 * 实例化一个对象
	 */
	public RoleOperate newInstance() {
		return new RoleOperate();
	}

	/**
	 * 获得子类的Class
	 * @return 子类的Class
	 */
	public Class<RoleOperate> getEntityClass() {
		return RoleOperate.class;
	}

	/**
	 * 获得角色与操作关系助手
	 * @return 角色与操作关系助手
	 */
	public static RoleOperateHelper getHelper() {
		return helper;
	}

	/**
	 * 设置角色与操作关系助手
	 * @param helper 角色与操作关系助手
	 */
	public void setHelper(RoleOperateHelper helper) {
		RoleOperateHelper.helper = helper;
	}
}
